/*
? 在函数被调用时设置一个定时器，在一定时间后执行函数。
? 使用定时器的节流函数在第一次触发时不会执行，而是在 delay 秒之后才执行，当最后一次停止触发后，还会再执行一次函数
 */
function throttle(func, wait) {
    let timer = null;
    return function() {
        //? 当任务不存在时，才会开启定时器 否则不会做任何操作
        if (!timer) {
            timer = setTimeout(() => {
                func.apply(this, arguments);
                timer = null;
            }, wait);
        }
    };
}
